<?php
class Vars_Admin {
	public function init () {
		Y('this.delcache+', YuTori::create($this, 'delcache'));
		Y('this.exedelcache+', YuTori::create($this, 'exedelcache'));
	}
	
	public function call ($Method) {
		return Y('this.'.$Method);
	}
	
	public function delcache () {
		Y('Output.body', 'Vars:delcache');
		return true;
	}

	public function exedelcache () {
		$this->removeDirectory (DIR_BASE_HTML.'/vars/mod/');
		$this->removeDirectory (DIR_BASE_HTML.'/vars/cache/');
		$this->removeDirectory (DIR_BASE_SYS.'/vars/mod/');
		$this->removeDirectory (DIR_BASE_SYS.'/vars/cache/');
		Y('Output.Message', 'キャッシュを削除しました。');
		return true;
	}

	/**
	 * ディレクトリを再帰的に削除する
	 */
	function removeDirectory($dir) {
		if (is_dir ($dir)) {
			foreach (scandir ($dir) as $item) {
				if ($item == "." || $item == "..") continue;
				if (is_dir("$dir/$item")) {
					$this->removeDirectory("$dir/$item");
				} else {
					@unlink("$dir/$item");
				}
			}
			@rmdir($dir);
		}
	}
}
?>